<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
    </head>
    <body>
        <script>
            console.log(num);//console.log()是函数的调用，属于代码执行阶段，而在此时num
                             //并没有赋值，仅仅是在检查装载阶段声明了变量num，因此num为undefined
            var num = 10;// var num是变量赋值，在检查装载阶段，num=10是变量赋值在代码执行阶段
            func1();      //函数可以正常执行，函数的调用属于代码执行阶段，而函数名已在检查装载阶段声明数完成
            function func1(){
                //无论是否有形参，都可以使用arguments对象取到实参列表所赋值的数据
                console.log("调用func1成功");
            }
            fucn2();//函数不能执行，打印func2时显示undefined。匿名函数表达式num2与变量相同
            var func2= function(){
                console.log("调用fun2成功")
            }
            
        </script>
    </body>
</html>